<?php
/** 删除默认文件编辑限制 */
remove_hook(array('file.update.check_permission', 'file.delete.check_permission'));

/** 上传并解压模板 */
add_action('file.uploadZip', function($input){
	if(error()) return error();
	if(!is_admin()) return error(lang('mod.permissionDenied'));
	if(empty($input['type'])) return error(lang('mod.missingArguments'));
	$result = file::upload($input);
	if($result['success']){
		$data = $result['data'][0];
		$src = __ROOT__.substr($data['file_src'], strlen(site_url()));
		if($input['type'] == 'template'){
			$folder = 'template/';
			$type = '模板';
		}else{
			$folder = config('mod.plugins.savePath');
			$type = '插件';
		}
		if(zip_extract($src, __ROOT__.$folder)){
			return success($type.'上传成功。');
		}else{
			error('文件上传成功，但在解压时遇到错误。');
		}
	}else{
		return error($result['data']);
	}
}, false);

add_action('file.removeFolder', function($input){
	if(error()) return error();
	if(!is_admin()) return error(lang('mod.permissionDenied'));
	if(empty($input['folder']) || empty($input['type'])) return error(lang('mod.missingArguments'));
	if($input['type'] == 'template'){
		$dir = __ROOT__.'template/'.$input['folder'];
		if(strpos(template_path(), $dir) === 0) return error('不能删除正在使用的模板。');
		if(is_dir($dir) && xrmdir($dir)){
			$tmp = __ROOT__.config('mod.template.compiler.savePath').'template/'.$input['folder'];
			if(is_dir($tmp)) xrmdir($tmp);
			return success('模板删除成功。');
		}else{
			return error('模板删除失败。');
		}
	}else{
		$enable = explode('|', str_replace(' ', '', config('mod.plugins.enable')));
		if(in_array($input['folder'], $enable)) return error('不能删除正在使用的插件。');
		$dir = __ROOT__.config('mod.plugins.savePath').$input['folder'];
		if(is_dir($dir) && xrmdir($dir)){
			return success('插件删除成功。');
		}else{
			return error('插件删除失败。');
		}
	}
}, false);

add_action('file.getContent', function($input){
	if(error()) return error();
	if(!is_admin()) return error(lang('mod.permissionDenied'));
	if(empty($input['filename'])) return error(lang('mod.missingArguments'));
	if(!file_exists(__ROOT__.$input['filename'])) return error('所请求的文件不存在。');
	return success(file_get_contents(__ROOT__.$input['filename']));
}, false);

add_action('file.putContent', function($input){
	if(error()) return error();
	if(!is_admin()) return error(lang('mod.permissionDenied'));
	if(empty($input['filename']) || empty($input['content'])) return error(lang('mod.missingArguments'));
	if(!file_exists(__ROOT__.$input['filename'])) return error('所请求的文件不存在。');
	if(file_put_contents(__ROOT__.$input['filename'], $input['content'])){
		return success('文件修改成功。');
	}else{
		return error('文件修改失败。');
	}
}, false);

add_action('file.removeTempFolder', function($input){
	if(error()) return error();
	if(!is_admin()) return error(lang('mod.permissionDenied'));
	if(empty($input['folder'])) return error(lang('mod.missingArguments'));
	$dir = template::$saveDir.$input['folder'];
	if(file_exists($dir)){
		xrmdir($dir);
		return success('缓存删除成功。');
	}
	return error('缓存删除失败。');
}, false);